ভিউ এবং Razor Pages (Views and Razor Pages)

Microsoft Technologies - ডট নেট কোর (Dot.Net Core)
216
216

ASP.Net Core অ্যাপ্লিকেশনের ভিউ এবং Razor Pages হল ইউজার ইন্টারফেস তৈরির জন্য ব্যবহৃত গুরুত্বপূর্ণ অংশ। Razor হল ASP.Net Core এর জন্য একটি ভিউ ইঞ্জিন, যা HTML, C# কোড এবং Razor সিনট্যাক্স ব্যবহার করে ডাইনামিক ওয়েব পেজ তৈরি করতে সাহায্য করে। Razor Pages আরও একটি আধুনিক ও সহজ পদ্ধতি, যা সিপিএস (Pages Based) আর্কিটেকচারকে সমর্থন করে।


Razor View Engine এর পরিচিতি

Razor View Engine হল একটি টেমপ্লেট ইঞ্জিন যা HTML এবং C# কোডের সংমিশ্রণ করে। এর মাধ্যমে ডাইনামিক ওয়েব পেজ তৈরি করা যায়। Razor সিম্পল সিনট্যাক্স ব্যবহার করে, যেখানে C# কোড @ চিহ্ন দিয়ে HTML-এর মধ্যে এম্বেড করা হয়। Razor Views সাধারনত .cshtml এক্সটেনশন সহ থাকে।

Razor সিনট্যাক্সের উদাহরণ:

@{
    var message = "Hello, World!";
}
<!DOCTYPE html>
<html>
<head>
    <title>Razor Example</title>
</head>
<body>
    <h1>@message</h1>
</body>
</html>

এখানে, @{} ব্লকে C# কোড লেখা হয়েছে এবং @message দিয়ে HTML তে ডাইনামিক কনটেন্ট দেখানো হয়েছে।


Layouts এবং Partial Views

Layout
Razor Views-এ Layout একটি মৌলিক কাঠামো প্রদান করে যা সাইটের সমস্ত পেজের জন্য কমন। এটি হেডার, ফুটার বা সাইডবারের মতো সাধারণ অংশগুলোকে রিপিট করতে সাহায্য করে। Layout ব্যবহার করলে কোড পুনরাবৃত্তি কমে যায়।

Layout ব্যবহার করতে, প্রথমে _Layout.cshtml ফাইল তৈরি করুন এবং এতে আপনার সাইটের সাধারণ উপাদানগুলি (যেমন হেডার, ফুটার) রাখুন।

<!DOCTYPE html>
<html>
<head>
    <title>@ViewData["Title"]</title>
</head>
<body>
    <header>
        <h1>Welcome to My Site</h1>
    </header>

    <div>
        @RenderBody()
    </div>

    <footer>
        <p>© 2024 My Website</p>
    </footer>
</body>
</html>

এখন, আপনার Views-এ Layout ব্যবহার করতে, Razor Page-এ @{ Layout = "_Layout"; } এই লাইনটি ব্যবহার করুন।

Partial View
Partial View একটি ছোট অংশ যা পূর্ণ পেজের মধ্যে পুনরায় ব্যবহার করা যেতে পারে। এটি সাধারণত UI এর একটি অংশ (যেমন ফর্ম, টেবিল) হিসেবে ব্যবহৃত হয়।

<!-- _ProductList.cshtml -->
@model IEnumerable<Product>
<ul>
    @foreach(var product in Model)
    {
        <li>@product.Name</li>
    }
</ul>

এই Partial View কে মূল ভিউতে ব্যবহার করা যায়:

@{ Html.RenderPartial("_ProductList", Model.Products); }

Razor Syntax এবং Helper Methods

Razor Syntax
Razor সিনট্যাক্স খুবই সরল এবং এটি C# কোডের সংমিশ্রণে HTML তৈরির একটি সহজ উপায়। আপনি সাধারণত @ চিহ্ন দিয়ে Razor কোডের শুরু এবং শেষ চিহ্নিত করেন। উদাহরণস্বরূপ, ভেরিয়েবল প্রিন্ট করতে @variable ব্যবহার করা হয়।

@{
    var title = "Welcome to Razor Pages!";
}
<h1>@title</h1>

Helper Methods
Razor Pages এ বিভিন্ন ধরনের হেল্পার মেথড থাকে যা ডাইনামিক কনটেন্ট জেনারেট করতে সাহায্য করে। উদাহরণস্বরূপ, HTML হেল্পার মেথডের মাধ্যমে ফর্ম তৈরি করা যেতে পারে।

<form asp-action="Create" method="post">
    <label for="Name">Product Name</label>
    <input type="text" id="Name" name="Name" />
    <button type="submit">Submit</button>
</form>

এখানে asp-action="Create" হেল্পার ব্যবহার করা হয়েছে, যা ASP.Net Core অ্যাকশন মেথডের সাথে ইন্টারঅ্যাক্ট করবে।


Strongly Typed Views এবং Model Binding

Strongly Typed Views
Razor Views-এ যদি আপনি মডেলের প্রপার্টি অ্যাক্সেস করতে চান, তবে আপনাকে প্রথমে @model ডিরেকটিভ ব্যবহার করে মডেল টাইপ ডিফাইন করতে হবে। এটা আপনাকে টাইপ সেফ কোড লিখতে সহায়তা করে।

@model MyApplication.Models.Product

<h1>@Model.Name</h1>
<p>@Model.Description</p>

এখানে Product মডেলটির প্রপার্টি অ্যাক্সেস করা হচ্ছে।

Model Binding
Model Binding হল একটি প্রক্রিয়া যার মাধ্যমে ASP.Net Core একটি ফর্মের ডেটা বা রিকোয়েস্ট প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে মডেলে ম্যাপ করে। এটি ডেভেলপারের কাজ সহজ করে দেয়।

[HttpPost]
public IActionResult Create(Product product)
{
    if (ModelState.IsValid)
    {
        // Save product
    }
    return View(product);
}

এখানে product প্যারামিটারটি Model Binding এর মাধ্যমে ফর্মের ডেটা স্বয়ংক্রিয়ভাবে ইনজেক্ট হবে।


সারাংশ

Razor Pages এবং Razor Views হল ASP.Net Core অ্যাপ্লিকেশন তৈরির জন্য গুরুত্বপূর্ণ টুল। Razor সিনট্যাক্স এবং HTML কোডের সংমিশ্রণে ডাইনামিক ওয়েব পেজ তৈরি করা সম্ভব। Layouts, Partial Views, এবং Razor Helper Methods ব্যবহার করে আপনি ওয়েব পেজগুলোকে আরও মডুলার এবং রিইউজেবল করতে পারেন। Strongly Typed Views এবং Model Binding-এর মাধ্যমে ডাইনামিক ডেটা সঠিকভাবে প্রদর্শন করা যায় এবং ফর্ম সাবমিটের সময় ডেটা সহজে মডেলে বেঁধে দেওয়া সম্ভব।

common.content_added_by

Razor View Engine এর পরিচিতি

223
223

Razor View Engine হল একটি ডাইনামিক ওয়েব টেমপ্লেট ইঞ্জিন, যা ASP.Net Core অ্যাপ্লিকেশনে ব্যবহৃত হয় HTML এবং C# কোড একত্রে এক্সপ্রেস করার জন্য। এটি HTML মার্কআপের মধ্যে C# কোড ইন্সার্ট করতে সক্ষম এবং ওয়েব পেজে ডাইনামিক কন্টেন্ট রেন্ডার করতে সাহায্য করে। Razor এর মাধ্যমে অ্যাপ্লিকেশন ডেভেলপাররা সহজেই ডাইনামিক ইউজার ইন্টারফেস তৈরি করতে পারেন।


Razor View Engine কীভাবে কাজ করে?

Razor View Engine HTML কোডের মধ্যে C# কোড রেন্ডার করার জন্য একটি বিশেষ সিম্বল ব্যবহার করে, যেটি @ চিহ্ন দিয়ে চিহ্নিত হয়। Razor কোডের মাধ্যমে অ্যাপ্লিকেশন লজিক যেমন লুপ, কন্ডিশনাল স্টেটমেন্ট, ভেরিয়েবল রেফারেন্স ইত্যাদি সহজেই অ্যাক্সেস করা যায়, যা ওয়েব পেজের ডাইনামিক কন্টেন্ট তৈরির জন্য প্রয়োজনীয়। উদাহরণস্বরূপ:

<h1>@Model.Title</h1>
<p>@Model.Description</p>

এখানে @Model.Title এবং @Model.Description C# কোড যা Model অবজেক্টের ডেটা রেন্ডার করে HTML তে দেখায়।


Razor এর সুবিধাসমূহ

1. সিম্পল এবং ক্লিন সিনট্যাক্স
Razor এর সিনট্যাক্স খুবই সিম্পল এবং ক্লিন। HTML মার্কআপের মধ্যে C# কোড লেখা সহজ, কারণ Razor কোড সাধারণত @ চিহ্ন দিয়ে শুরু হয়, যা HTML-এর সাথে সংঘর্ষ তৈরি করে না। উদাহরণ:

<h2>@DateTime.Now</h2>

এখানে @DateTime.Now দ্বারা বর্তমান সময় রেন্ডার করা হবে।

2. এক্সপ্রেসিভ এবং পারফরম্যান্স অগ্রাধিকার
Razor প্রক্রিয়াটি সিম্পল এবং দ্রুত রেন্ডারিং নিশ্চিত করে, কারণ এটি ডায়নামিক কন্টেন্ট রেন্ডার করার জন্য কম্পাইল করা কোড ব্যবহার করে, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।

3. Strongly Typed Views
Razor ভিউ ইঞ্জিন সঙ্গতিপূর্ণ (strongly typed) ভিউ তৈরি করার সুযোগ দেয়, যা ভিউ এবং মডেলের মধ্যে ডেটা ব্যবস্থাপনাকে আরও নির্ভুল করে তোলে। যখন ভিউ একটি নির্দিষ্ট মডেলের সাথে সম্পর্কিত হয়, তখন কম্পাইল টাইমে ভুল চেক করা সম্ভব হয়। উদাহরণ:

@model MyApp.Models.Product
<h1>@Model.Name</h1>

এখানে @model ডিরেকটিভ দ্বারা ভিউ একটি নির্দিষ্ট মডেল টাইপের সাথে সম্পর্কিত হয়, যার ফলে টাইপ চেকিং হয় এবং রUNTIME এ ভুল হতে পারে না।

4. HTML এবং C# এর একত্রিত ব্যবহার
Razor সহজভাবে HTML এবং C# কোড একত্রিত করতে পারে, যা ডেভেলপারদের দ্রুত ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে। উদাহরণ:

<ul>
  @foreach(var item in Model.Items)
  {
    <li>@item.Name</li>
  }
</ul>

এই কোডে foreach লুপ ব্যবহার করে ডাইনামিক কন্টেন্ট রেন্ডার করা হচ্ছে, যেখানে Model.Items থেকে প্রতিটি আইটেমের নাম দেখানো হচ্ছে।

5. সহজ ইন্টিগ্রেশন
Razor সহজেই অন্যান্য ASP.Net Core কম্পোনেন্টের সাথে ইন্টিগ্রেট করা যায়, যেমন কন্ট্রোলার, মডেল, ডিপেনডেন্সি ইনজেকশন ইত্যাদি।


Razor এর ব্যবহার

1. Razor Views
ASP.Net Core অ্যাপ্লিকেশনে সাধারণত Views ফোল্ডারে Razor ফাইল (যেমন .cshtml এক্সটেনশনে) রাখা হয়। এই ফাইলগুলিতে HTML এবং C# কোড একত্রিত হয়ে ডাইনামিক পেজ তৈরি করে। উদাহরণ:

  • Home/Index.cshtml
  • Account/Login.cshtml

2. Razor Pages
ASP.Net Core 2.0 থেকে Razor Pages পরিচিতি পেয়েছে, যা MVC স্টাইলের থেকেও সরল এবং সহজ। Razor Pages ফোল্ডারে .cshtml ফাইল থাকে, কিন্তু এটি নিজে কন্ট্রোলার হিসেবে কাজ করে এবং প্রতিটি পেজের জন্য আলাদা হ্যান্ডলার থাকে।


Razor কোড স্নিপেট উদাহরণ

ডাইনামিক কন্টেন্ট রেন্ডারিং

@{
    var message = "Welcome to Razor!";
}
<h1>@message</h1>

এখানে Razor কোডের মাধ্যমে message ভেরিয়েবল ডিফাইন করা হয়েছে এবং তা HTML পেজে রেন্ডার করা হয়েছে।

লুপের মাধ্যমে ডেটা রেন্ডারিং

<ul>
    @foreach(var product in Model.Products)
    {
        <li>@product.Name</li>
    }
</ul>

এখানে একটি foreach লুপ ব্যবহার করে Model.Products এর প্রতিটি আইটেমের নাম রেন্ডার করা হচ্ছে।


সারাংশ

Razor View Engine ASP.Net Core অ্যাপ্লিকেশনের জন্য একটি অত্যন্ত শক্তিশালী এবং ফ্লেক্সিবল টেমপ্লেট ইঞ্জিন। এটি ডাইনামিক কন্টেন্ট রেন্ডার করতে HTML ও C# কোড একত্রিত করতে সক্ষম। Razor এর সুবিধাগুলি যেমন সিম্পল সিনট্যাক্স, strongly typed views, এবং HTML এবং C# এর একত্রিত ব্যবহার ডেভেলপারদের দ্রুত এবং কার্যকর ওয়েব পেজ তৈরি করতে সহায়তা করে। Razor Views এবং Razor Pages উভয়ই ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং ASP.Net Core অ্যাপ্লিকেশনগুলোকে আরও মডুলার ও রক্ষণাবেক্ষণযোগ্য করে তোলে।

common.content_added_by

Layouts এবং Partial Views

261
261

ASP.NET Core MVC অ্যাপ্লিকেশনে Layouts এবং Partial Views ব্যবহারের মাধ্যমে ভিউয়ের কাঠামো এবং পুনঃব্যবহারযোগ্যতা উন্নত করা যায়। এগুলো এমন দুটি ফিচার যা বড় এবং কমপ্লেক্স ওয়েব অ্যাপ্লিকেশনগুলোতে কোড পুনঃব্যবহার এবং স্টাইল এক্সটেনশনকে সহজ করে তোলে।


Layouts

Layout একটি সাধারণ কনটেইনার ফাইল, যা অন্যান্য ভিউগুলোর জন্য একটি সাধারণ কাঠামো প্রদান করে। Layouts মূলত হেডার, ফুটার, ন্যাভিগেশন বার এবং অন্যান্য সাধারণ উপাদান ধারণ করে, যা পুরো সাইট জুড়ে পুনরাবৃত্তি হতে পারে। যখন ভিউ একটি লেআউট ব্যবহার করে, তখন তা স্বয়ংক্রিয়ভাবে লেআউটের মধ্যে রেন্ডার হয়ে যায়।

Layout ফাইল তৈরি করা

  1. Layout ফাইল তৈরি করুন: প্রথমে Views/Shared ফোল্ডারে _Layout.cshtml নামের একটি ফাইল তৈরি করুন।
  2. Layout ফাইলের কাঠামো: এই ফাইলটি সাধারণত HTML স্ট্রাকচার ধারণ করে যেমন হেডার, ফুটার এবং অন্যান্য গ্লোবাল উপাদান।
  3. ভিউ থেকে Layout ব্যবহার করুন: প্রতিটি ভিউতে @layout ডিরেকটিভ ব্যবহার করে লেআউটের রেফারেন্স দিন।

_Layout.cshtml (Layout ফাইল):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewData["Title"]</title>
    <link href="~/css/site.css" rel="stylesheet" />
</head>
<body>
    <header>
        <h1>My Website</h1>
        <nav>
            <ul>
                <li><a href="/">Home</a></li>
                <li><a href="/About">About</a></li>
                <li><a href="/Contact">Contact</a></li>
            </ul>
        </nav>
    </header>

    <div class="container">
        @RenderBody()  <!-- এখানে ভিউয়ের কন্টেন্ট রেন্ডার হবে -->
    </div>

    <footer>
        <p>© 2024 My Website</p>
    </footer>
</body>
</html>

এখানে, @RenderBody() ট্যাগটি লেআউটের মধ্যে ভিউয়ের মূল কন্টেন্ট রেন্ডার করবে।

ভিউ থেকে Layout ব্যবহার করা:

@{
    Layout = "_Layout";  // এখানে লেআউট ফাইল নির্দিষ্ট করা হয়েছে
}

<h2>Welcome to the Home Page</h2>
<p>This is the homepage content.</p>

এখানে, এই ভিউটি _Layout.cshtml ফাইলের মধ্যে রেন্ডার হবে, যেখানে হেডার, ন্যাভিগেশন এবং ফুটার এরকম গ্লোবাল উপাদান থাকবে।


Partial Views

Partial View হল একটি ছোট, পুনঃব্যবহারযোগ্য ভিউ, যা কোনো বড় ভিউয়ের অংশ হিসেবে ব্যবহৃত হয়। এটি সাধারণত একটি নির্দিষ্ট কম্পোনেন্ট বা উপাদান, যেমন ফর্ম, গ্রিড, টেবিল, অথবা অন্য কোনো UI অংশের জন্য ব্যবহৃত হয়।

Partial View তৈরি করা

  1. Partial View ফাইল তৈরি করুন: Views/Shared ফোল্ডারে একটি .cshtml ফাইল তৈরি করুন যা নির্দিষ্ট উপাদান বা কম্পোনেন্ট ধারণ করবে।
  2. Partial View রেন্ডার করা: কন্ট্রোলারে বা ভিউতে @Html.Partial() বা @Html.RenderPartial() মেথড ব্যবহার করে partial view রেন্ডার করা হয়।

_ProductList.cshtml (Partial View):

@model IEnumerable<MyApp.Models.Product>

<table>
    <thead>
        <tr>
            <th>Product Name</th>
            <th>Price</th>
        </tr>
    </thead>
    <tbody>
    @foreach (var product in Model)
    {
        <tr>
            <td>@product.Name</td>
            <td>@product.Price</td>
        </tr>
    }
    </tbody>
</table>

এখানে _ProductList.cshtml একটি partial view যা পণ্যের তালিকা প্রদর্শন করবে। এটি একটি IEnumerable<Product> মডেল গ্রহণ করে।

Partial View রেন্ডার করা:

@{
    Layout = "_Layout";
}

<h2>Product List</h2>

@Html.Partial("_ProductList", Model.Products)  <!-- Partial View রেন্ডার করা -->

এখানে, @Html.Partial("_ProductList", Model.Products) দিয়ে আমরা পণ্যের তালিকা রেন্ডার করছি। এই partial view টি মূল ভিউতে ইনক্লুড করা হয়েছে।


Layout এবং Partial View এর মধ্যে পার্থক্য

  • Layout সাধারণত পুরো অ্যাপ্লিকেশনের জন্য কাঠামো প্রদান করে (যেমন হেডার, ফুটার, ন্যাভিগেশন বার), যখন Partial View শুধুমাত্র ছোট UI অংশের জন্য ব্যবহৃত হয়, যা ভিউর মধ্যে অন্তর্ভুক্ত করা হয়।
  • Layout একটি সাধারণ ফাইল যা সমস্ত ভিউতে শেয়ার করা হয়, কিন্তু Partial View প্রয়োজনীয়তা অনুসারে নির্দিষ্ট ভিউতে ব্যবহার করা হয়।
  • Partial View প্রাপ্তি এক বা একাধিক বার ভিউয়ের মধ্যে, কিন্তু Layout একটি ভিউকে সম্পূর্ণভাবে রেন্ডার করে।

সারাংশ
ASP.NET Core MVC তে Layouts এবং Partial Views দুটি গুরুত্বপূর্ণ উপাদান। Layouts ব্যবহার করে অ্যাপ্লিকেশনের সাধারণ কাঠামো এবং UI উপাদানগুলো পুনঃব্যবহারযোগ্য করা যায়, আর Partial Views ছোট, পুনঃব্যবহারযোগ্য UI অংশ হিসেবে ব্যবহৃত হয়, যা ভিউয়ের মধ্যে অন্তর্ভুক্ত করা যায়। এগুলো অ্যাপ্লিকেশনের কোডকে পরিষ্কার এবং সুসংগঠিত রাখতে সহায়তা করে।

common.content_added_by

Razor Syntax এবং Helper Methods

244
244

Razor হল একটি সিম্পল এবং শক্তিশালী টেমপ্লেট ইঞ্জিন, যা ASP.Net Core-এ ভিউ (View) তৈরি করতে ব্যবহৃত হয়। Razor সিএসএস, HTML, JavaScript এবং C# কোডকে একটি একক ফাইলে একত্রিত করে, যার মাধ্যমে ডায়নামিক ওয়েব পেজ তৈরি করা যায়। Razor-এ সি# কোড এবং HTML-এর মধ্যে সিম্পল এবং কার্যকরীভাবে মিশ্রণ করা যায়।


Razor Syntax

Razor সিনট্যাক্স অত্যন্ত সরল এবং এটি HTML ট্যাগের ভিতরে C# কোড ব্যবহার করতে দেয়। Razor কোড সাধারণত @ চিহ্ন দিয়ে শুরু হয়, যা C# কোড ব্লককে HTML থেকে আলাদা করে। Razor কোড লেখার জন্য কয়েকটি সাধারণ সিনট্যাক্স রয়েছে, যেমন:

একক কোড ব্লক

Razor কোড একক লাইনে C# কোড লেখা যেতে পারে, যেমন:

<h1>@DateTime.Now</h1>

এটি বর্তমান তারিখ এবং সময় পৃষ্ঠায় প্রদর্শন করবে।

ভেরিয়েবল ডিক্লেয়ারেশন

Razor-এ C# ভেরিয়েবল ব্যবহার করা খুবই সহজ:

@{
    var message = "Hello, Razor!";
}
<p>@message</p>

এখানে, আমরা message নামক একটি ভেরিয়েবল ডিফাইন করেছি এবং সেটি HTML ট্যাগে ব্যবহার করেছি।

কন্ট্রোল স্টেটমেন্টস

Razor-এ C# কন্ট্রোল স্টেটমেন্ট (যেমন if, foreach, for) ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, একটি if কন্ডিশন:

@if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
{
    <p>আজ রবিবার!</p>
}
else
{
    <p>আজ রবিবার নয়।</p>
}

এখানে, Razor C# কোডের মাধ্যমে ডেটা চেক করছে এবং HTML ট্যাগের মাধ্যমে রেন্ডার করছে।

লুপ (Loop)

C# লুপ (যেমন for, foreach) Razor টেমপ্লেটে সহজে ব্যবহার করা যায়। উদাহরণ:

<ul>
    @foreach (var item in new List<string> { "Apple", "Banana", "Cherry" })
    {
        <li>@item</li>
    }
</ul>

এখানে, আমরা একটি লিস্টের প্রতিটি আইটেম <li> ট্যাগে রেন্ডার করছি।


Razor Helper Methods

Razor টেমপ্লেট ব্যবহার করে অনেক কাজকে আরও সহজ ও ডায়নামিক করা সম্ভব। Razor হেল্পার মেথডগুলি মূলত ছোট ফাংশন যা নির্দিষ্ট কাজ করে। এগুলি সাধারণত HTML ট্যাগ তৈরি করতে বা C# কোড প্রয়োগ করতে ব্যবহার করা হয়। কিছু পরিচিত Razor হেল্পার মেথডের উদাহরণ নিচে দেওয়া হলো:

@Html.ActionLink()

এটি একটি লিঙ্ক তৈরি করে যা নির্দিষ্ট কন্ট্রোলারের অ্যাকশনে রিডাইরেক্ট করে। উদাহরণ:

@Html.ActionLink("Go to Home", "Index", "Home")

এটি "Go to Home" নামে একটি লিঙ্ক তৈরি করবে, যা HomeController এর Index অ্যাকশনে রিডাইরেক্ট করবে।

@Html.BeginForm()

এটি একটি HTML ফর্ম তৈরি করতে ব্যবহৃত হয়, যা পোস্ট রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়:

@using (Html.BeginForm())
{
    <input type="text" name="name" />
    <button type="submit">Submit</button>
}

এই কোড একটি ফর্ম তৈরি করবে, যা সাবমিট করার পর, ডিফল্টভাবে সেই রিকোয়েস্টটিকে ঐ অ্যাকশনে পাঠাবে।

@Html.TextBoxFor()

এই হেল্পার মেথড ব্যবহার করে আপনি মডেল প্রপার্টি থেকে ডেটা নিয়ে একটি ইনপুট ফিল্ড তৈরি করতে পারেন। উদাহরণ:

@Html.TextBoxFor(model => model.Name)

এটি মডেল Name প্রপার্টির জন্য একটি ইনপুট ফিল্ড তৈরি করবে।

@Html.ValidationMessageFor()

এটি মডেল প্রপার্টির জন্য ভ্যালিডেশন মেসেজ প্রদর্শন করতে ব্যবহৃত হয়:

@Html.ValidationMessageFor(model => model.Name)

এটি Name প্রপার্টির জন্য কোনো ভ্যালিডেশন মেসেজ থাকলে সেটি দেখাবে।

@Url.Action()

এটি একটি URL তৈরি করতে ব্যবহৃত হয় যা নির্দিষ্ট কন্ট্রোলারের অ্যাকশনের জন্য রিডাইরেক্ট করবে:

<a href="@Url.Action("Details", "Product", new { id = 1 })">Product Details</a>

এটি ProductController এর Details অ্যাকশনের জন্য একটি URL তৈরি করবে এবং এতে id প্যারামিটারও পাস করবে।


Razor Helper Methods এর সুবিধা

  • কোড পুনরায় ব্যবহারযোগ্যতা: Razor হেল্পার মেথডগুলি সাধারণ কাজের জন্য কোড পুনরায় ব্যবহারযোগ্যতা নিশ্চিত করে। একে বার লিখলে, আপনি সেটা বিভিন্ন জায়গায় ব্যবহার করতে পারবেন।
  • রিডেবিলিটি: Razor সিনট্যাক্স সহজ এবং পরিষ্কার, যা কোডের রিডেবিলিটি বাড়ায়।
  • ডাইনামিক কন্টেন্ট: Razor HTML এবং C# কোড একত্রিত করে ডাইনামিক কন্টেন্ট তৈরি করতে সহায়তা করে।
  • ভ্যালিডেশন এবং ফর্ম হ্যান্ডলিং: Razor হেল্পার মেথডগুলি মডেল ভ্যালিডেশন এবং ফর্ম সাবমিশন প্রক্রিয়াকে সহজ এবং নির্ভুল করে।

সারাংশ
Razor Syntax এবং Helper Methods ASP.Net Core অ্যাপ্লিকেশনে ডায়নামিক ওয়েব পেজ তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ। Razor সিনট্যাক্স HTML এবং C# কোডের মধ্যে একটি সিম্পল এবং কার্যকরী সংমিশ্রণ তৈরি করে, যা ডায়নামিক কন্টেন্ট প্রক্রিয়া করতে সাহায্য করে। Razor হেল্পার মেথডগুলি কোড পুনরায় ব্যবহারযোগ্যতা, ফর্ম হ্যান্ডলিং, ভ্যালিডেশন এবং ডাইনামিক কন্টেন্ট প্রদর্শন করতে সহায়তা করে, যা ওয়েব ডেভেলপমেন্ট প্রক্রিয়াকে সহজ এবং দ্রুত করে।

common.content_added_by

Strongly Typed Views এবং Model Binding

237
237

Strongly Typed Views এবং Model Binding দুটি গুরুত্বপূর্ণ ধারণা যা ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহার করা হয়। এই দুটি কনসেপ্ট কোডের মান বজায় রাখতে, ডেটার মধ্যে নির্ভুলতা নিশ্চিত করতে এবং ডেভেলপমেন্টকে আরও কার্যকরী ও নিরাপদ করতে সহায়ক।


Strongly Typed Views

Strongly Typed Views বলতে এমন ভিউকে বোঝায়, যা একটি নির্দিষ্ট Model (মডেল) বা DTO (Data Transfer Object) কে ব্যবহার করে। এর মানে হলো, ভিউটি শুধু একটি নির্দিষ্ট ডেটা টাইপকে রেন্ডার করতে পারে, এবং এটি সেই মডেলের সকল প্রোপার্টি এবং মেথড অ্যাক্সেস করতে সক্ষম।

ASP.NET Core MVC তে Strongly Typed Views ব্যবহার করার মাধ্যমে:

  1. Compile-time checking: মডেলটির সকল প্রোপার্টি ভিউতে ব্যবহৃত হওয়া নিশ্চিত করা যায়। ভুল প্রোপার্টি বা টাইপের ভুল ব্যবহারের ফলে কম্পাইল টাইমে ত্রুটি পাওয়া যায়, যা ডেভেলপমেন্টকে আরও নিরাপদ ও নির্ভুল করে।
  2. IntelliSense: যখন ভিউতে মডেল ব্যবহার করা হয়, তখন ভিউতে প্রপার্টি অ্যাক্সেস করতে IntelliSense সুবিধা পাওয়া যায়, যা ডেভেলপারদের দ্রুত কোড লেখার ক্ষেত্রে সহায়তা করে।
  3. Type Safety: এই পদ্ধতিতে ডেটা টাইপের নিরাপত্তা নিশ্চিত করা যায়। ভিউতে সঠিক ডেটা টাইপ প্রদান করতে হয়, যার ফলে অ্যাপ্লিকেশনে ডেটা প্রোসেসিংয়ে ত্রুটি কমে।

Strongly Typed View তৈরি করা

Strongly Typed View তৈরি করতে, প্রথমে একটি মডেল তৈরি করতে হয়। উদাহরণস্বরূপ, একটি Product মডেল তৈরি করা যেতে পারে:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

এরপর, ভিউতে এই মডেলটি ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Product মডেলটি ব্যবহার করা হয়েছে:

@model Product

<h1>Product Details</h1>

<p>Product Id: @Model.Id</p>
<p>Product Name: @Model.Name</p>
<p>Product Price: @Model.Price</p>

এখানে, @model Product নির্দেশ করে যে এই ভিউটি Product মডেলকে ব্যবহার করবে। মডেলের প্রোপার্টিগুলো অ্যাক্সেস করতে @Model ব্যবহার করা হয়।


Model Binding

Model Binding একটি প্রক্রিয়া, যার মাধ্যমে HTTP রিকোয়েস্ট (যেমন: ফর্ম ডেটা, কুয়েরি স্ট্রিং, URL প্যারামিটার ইত্যাদি) অ্যাক্সেস করে তা মডেল অবজেক্টে রূপান্তর করা হয়। এটি ডেটা ফর্ম্যাটিং, টাইপ কনভার্সন এবং ভ্যালিডেশন প্রক্রিয়ার দায়িত্ব পালন করে। Model Binding এর মাধ্যমে ডেভেলপাররা HTTP রিকোয়েস্টে পাঠানো ডেটা খুব সহজেই মডেল ক্লাসে মাইগ্রেট করতে পারেন।

ASP.NET Core MVC তে Model Binding এর সাহায্যে:

  1. Automatic Binding: ফর্ম ডেটা বা কুয়েরি প্যারামিটারগুলো স্বয়ংক্রিয়ভাবে মডেল প্রপার্টিগুলোর সাথে ম্যাচ করে।
  2. Complex Types: শুধু প্রাথমিক ডেটা টাইপ নয়, এমনকি কমপ্লেক্স টাইপও (যেমন: ক্লাস, লিস্ট ইত্যাদি) মডেল বাইনডিংয়ের মাধ্যমে ইনপুট হিসেবে গ্রহণ করা যায়।
  3. Validation: মডেল বাইনডিংয়ের সাথে ভ্যালিডেশন যোগ করা যায়, যা ব্যবহারকারী ইনপুটকে যাচাই করতে সহায়তা করে।

Model Binding উদাহরণ

ধরা যাক, একটি Product মডেল রয়েছে এবং একটি ফর্মের মাধ্যমে এই মডেলটির ডেটা পাঠানো হচ্ছে। নিচে উদাহরণ দেওয়া হলো:

  1. প্রথমে, Product মডেল তৈরি করা হবে:
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
  1. একটি Controller অ্যাকশন তৈরি করা হবে যেটি ফর্ম থেকে ডেটা গ্রহণ করবে:
public class ProductController : Controller
{
    [HttpPost]
    public IActionResult Create(Product product)
    {
        if (ModelState.IsValid)
        {
            // এখানে product মডেলটির ডেটা ইনপুট হিসাবে পাওয়া যাবে
            // ডেটাবেসে সংরক্ষণ বা অন্যান্য কার্যকলাপ করা যাবে
            return RedirectToAction("Index");
        }
        return View(product);
    }
}

এখানে, Create অ্যাকশন মেথডে Product মডেলটি ইনপুট হিসেবে আসবে। যখন ফর্মটি সাবমিট হবে, ASP.NET Core স্বয়ংক্রিয়ভাবে ফর্মের ডেটা Product মডেলে বাইনড করে।

  1. Create.cshtml ভিউ ফাইল:
@model Product

<form method="post">
    <div>
        <label for="Id">Product Id</label>
        <input type="text" id="Id" name="Id" value="@Model.Id" />
    </div>
    <div>
        <label for="Name">Product Name</label>
        <input type="text" id="Name" name="Name" value="@Model.Name" />
    </div>
    <div>
        <label for="Price">Product Price</label>
        <input type="text" id="Price" name="Price" value="@Model.Price" />
    </div>
    <button type="submit">Submit</button>
</form>

এখানে, Create.cshtml ফর্মে Product মডেলের প্রপার্টিগুলো ইনপুট হিসেবে পাঠানো হচ্ছে। ফর্মটি সাবমিট হলে, মডেল বাইনডিং প্রক্রিয়ার মাধ্যমে এই ডেটা Product মডেলে রূপান্তরিত হবে এবং কন্ট্রোলারের Create অ্যাকশন মেথডে পাস হবে।


Model Binding এর সুবিধা

  1. Simplifies Data Handling: মডেল বাইনডিং ডেটা হ্যান্ডলিংকে সহজ করে, কারণ HTTP রিকোয়েস্টের ডেটা স্বয়ংক্রিয়ভাবে মডেলে রূপান্তরিত হয়।
  2. Less Boilerplate Code: মডেল বাইনডিং ডেটার জন্য অনেক কোড লিখতে হয় না, এবং ডেটা ইনপুট বা রিটার্ন করার জন্য কম্প্লেক্সিটি কমে।
  3. Improves Security: মডেল বাইনডিং প্রক্রিয়া দিয়ে ইনপুট ডেটা এক্সট্র্যাক্ট করার সময়, ASP.NET Core এর নিরাপত্তা বৈশিষ্ট্যগুলো (যেমন: অটো ভ্যালিডেশন, ইনপুট স্যানিটাইজেশন) কাজ করে, যা অ্যাপ্লিকেশনকে সুরক্ষিত রাখে।

সারাংশ

Strongly Typed Views এবং Model Binding ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা রাখে। Strongly Typed Views কোডের নির্ভুলতা নিশ্চিত করে এবং Model Binding সহজভাবে ডেটা অ্যাক্সেস ও প্রক্রিয়াকরণে সহায়তা করে। এই দুটি বৈশিষ্ট্য ব্যবহার করে অ্যাপ্লিকেশনটি আরও টেস্টেবল, রিইউজেবল এবং নিরাপদ করা সম্ভব।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion